Remotely configurable wireless broadcast device

ABSTRACT

The system and method of the present disclosure relates to a remotely configurable wireless broadcast device connected to a network. The device includes a network connected computer and a proxy that interfaces with one or more non-network connected broadcast devices. The wireless broadcast device monitors the non-network connected broadcast devices and periodically reports the status for each of the devices. A server, remotely located from the configurable wireless broadcast device, receives and processes the status reports. The status reports may also be monitored by a user via a common user interface connected to the server. After processing the status reports, the server sends configuration data, including updated or modified information, back to the wireless broadcast device instructing the device to configure the non-network connected devices.

BACKGROUND

Short-range wireless proximity broadcast devices typically involvedevices with a communications range of less than several hundred feet.These devices are typically employed in a location of business such thatconsumers entering the business may be provided with information by thebusiness, for example, to a consumer's wireless device. These broadcastdevices are also used by consumers, businesses, service organizations(among others) to establish or extend local area networks to locationsthat are not readily or desirably connected to wire network interfacecards. However, as these broadcast devices are not network connected, itrequires a person to physically access the broadcast device to performany maintenance or updates. This may be particularly onerous insituations where the broadcast devices are positioned in difficult toreach locations or too many devices are deployed at a specific location.

BRIEF SUMMARY

The present disclosure, generally described, relates to technology forremotely configuring a broadcast device, and in particular, totechnology for configuring a non-network connected broadcast device froma remotely located server.

More specifically, the system and method of the present disclosurerelates to a remotely configurable wireless broadcast device connectedto a network. The device includes a network connected computer and aproxy that interfaces with one or more non-network connected broadcastdevices. The wireless broadcast device monitors the non-networkconnected broadcast devices and periodically reports the status for eachof the devices. A server, remotely located from the configurablewireless broadcast device, receives and processes the status reports.The status reports may also be monitored by a user via a common userinterface connected to the server. Additionally or alternatively, thewireless broadcast device connected to the network may send a requestfor instructions to the server, requesting any new or updatedconfiguration data available at the server for updating the non-networkconnected broadcast device. After processing the status reports orrequest for instructions, the server sends configuration data, includingupdated or modified information, back to the wireless broadcast deviceinstructing the device to configure the non-network connected devices.The ability to remotely configure a non-network connected broadcastdevice via a wireless broadcast device not only provides remotecapability, but it also provides an added level of security since thenon-network connected broadcast devices may be monitored and updated asnecessary.

The wireless broadcast device connected to the network includes, forexample, a proxy having an agent, an update module, a configurationmodule, a status module, a server API client and adapters. The proxy, inconjunction with the agent and adapters, interfaces and communicateswith non-network connected broadcast devices (e.g., beacons) to providean indirect pathway via a network to a server that provides updatedinformation to the beacons. The update module and configuration moduleare configured to receive and store configuration data, respectively,from the server. The status module monitors and identifies configurationchanges in the beacons and/or determines when updated information isavailable for download in at the server. When updated information isavailable at the server, it is downloaded to the wireless broadcastdevice and the proxy controls and manages the beacons such that theupdated information is provided thereto.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter. The claimed subject matter is not limited to implementationsthat solve any or all disadvantages noted in the Background.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are illustrated by way of example andare not limited by the accompanying figures with like referencesindicating like elements.

FIG. 1 is an exemplary diagram illustrating a system to remotelyconfigure a wireless broadcast device in accordance with one embodiment.

FIG. 2 is an exemplary flow diagram of monitoring and remotelyconfiguring a broadcast device.

FIG. 3 is an exemplary flow diagram of discovering connected anddisconnected broadcast devices.

FIG. 4 is an exemplary flow diagram of remotely monitoring the statusand updating the configuration of a broadcast device.

FIG. 5 is an exemplary diagram illustrating a process by which contentmay be associated with a network information string and stored.

FIG. 6 is an exemplary diagram illustrating acquisition of contentassociated with a network information string.

FIG. 7 is an exemplary diagram illustrating operations performed by alistener module according to an embodiment.

FIG. 8 is an exemplary diagram illustrating a remotely configurablewireless broadcast device.

FIG. 9 is an exemplary diagram illustrating multiple remotelyconfigurable wireless broadcast devices and a server connected to acommon user interface.

FIG. 10 shows an exemplary general computer system that may be used toimplement the system depicted in FIGS. 1-9.

DETAILED DESCRIPTION

The present disclosure, generally described, relates to technology forremotely configuring a broadcast device, and in particular, totechnology for configuring a non-network connected broadcast device froma remotely located server.

FIG. 1 is an exemplary diagram illustrating a system to remotelyconfigure a wireless broadcast device in accordance with one embodiment.The system 1000 includes, for example, a broadcast device 1002, a server1008 and a wireless device or station 202 operable by a user. Thebroadcast device 1002 includes, for example a wireless module 1004 and acomputer (or processor) 1006. The computer or processor 1006 is anywell-known computer, such as a Zotac, Raspberry Pi or Gateworks withOpen WRT, with network connectivity. (It is appreciated that thecomputer and/or processor are not limited to such describedembodiments). The broadcast device 1002 (also referred to herein as awireless broadcast device) is remotely managed (or configurable) by theserver 1008, which may be connected to network 101 via computer 1006.Thus, the broadcast device 1002 may be controlled remotely from anygeographical location over network 101. Network 101 may be any networkas readily understood, including but not limited to, any public orprivate network, or a combination of public and private networks such asthe Internet, and/or a public switched telephone network (PSTN), or anyother type of network that provides the ability for communicationbetween computing resources, components, users, etc. The server 1008, inone embodiment, may be accessed and controlled by a user operating acommon user interface 1010, such as a web interface that enables a userto provide instructions to and program the server 1008. That is, a usermay operate the common user interface 1010 to instruct and configureinformation in the server 1008. Information stored in the server 1008includes, for example, settings and status information (collectivelyknown as configuration data) applicable for programming, updating andconfiguring broadcast device 1002. The server 1008 may also include orconnect to one or more storage devices or systems (not shown) that storethe settings, status and configuration data. It is appreciated that anycommon user interface may be used, and the interface is not limited tothe described embodiment.

The broadcast device 1002 includes, for example, a wireless module 1004and computer and/or processor 1006, which are communicatively coupled.In one embodiment, the broadcast device 1002 is configured as a wirelessproximity broadcast device or beacon that has a network connection (forexample, a network connection to network 101) enabling remote managementor configuration from an externally connected device or component, suchas server 1008. Thus, an externally connected device or component, suchas server 1008, may not only access (or read) information from thebroadcast device 1002 but it may also program (or write) to thebroadcast device 1002. The wireless module 1004 (which may comprise oneor more modules), as will be described in more detail below withreference to FIGS. 8 and 9, may include one or more wired or wirelessinterfaces (despite its “wireless” name), such as a USB interface or aBluetooth BLE module or any other wireless interface technology. Theinterface provides a connection to one or more wireless broadcastdevices, such as string broadcast station (device) 220 (FIGS. 5 and 6),that is not network connected. That is, as described below, the wirelessbroadcast device 220 has wired or short range wireless capability(capable of communicating with devices wirelessly in proximity) forbroadcasting messages using, for example, digital radio packetadvertisements. However, the wireless broadcast device 220 does not havea network connection that provides for long range communication.Alternatively, the wireless module 1004 may include one or more of thewireless broadcast devices 220 that are communicatively coupled to thecomputer or processor 1006. The broadcast device 1002 and the server1008 will be described in more detail below with reference to thevarious figures.

FIG. 2 is an exemplary flow diagram of monitoring and remotelyconfiguring a broadcast device. The process depicted in FIG. 2 describesthe broadcast device 1002 monitoring and controlling (or managing) oneor more wireless broadcast devices 220 (also referred to herein as astring broadcast station or device). The process provides a user at acommon user interface 1010 to monitor and configure (i.e., manage)string broadcast devices 220, via server 1008, from a remote geographiclocation. For example, the user may configure settings of the stringbroadcast station 220 to turn on/off, change broadcast identifiers,increase or decrease transmission power levels, change advertisingfrequencies and modify the measured power calibration constant. Thus, auser may remotely update or upgrade software and firmware on thenon-network connected string broadcast station 220 and without having tobe physically located at the site of the non-network connected device.Similarly, the user may monitor the status of the string broadcastdevices 220, as described herein below. Additionally, even when a usermay be in relatively close proximity to the string broadcast devices220, it may be unrealistic to manually program or update the devices.For example, a corporate headquarter building may have hundreds orthousands of string broadcast devices 220 that require updates on adaily basis. Implementation of such an effort would not be practicalwithout the system described herein.

The computer 1006 (via the wireless module 1004) monitors the one ormore string broadcast stations 220 to determine a respective status ofeach connected device and/or monitors the server 1008 to determinewhether an update (change) is ready at 2002. The status of eachconnected string broadcast device 220 is optionally reported by thecomputer 1006 to the server 1008, or alternatively the server 1008reports that an update is ready to the computer 1006 at 2004. The statusof a connected device includes, in the simplest form, whether a deviceis powered ON or OFF (e.g., an UP or DOWN status of the device). Morecomplex status reports may also be included to report any informationabout one or more of the string broadcast devices 220. For example, in anon-limiting embodiment, the status may also include information aboutthe broadcast identifiers (e.g., SSID), transmission power level,advertising frequency (e.g., Bluetooth advertising), etc. The status maybe reviewed or processed at either the computer 1006 of the broadcastdevice 1002 or at the server 1008 to determine the “health” of the anydevice reporting a status. It is appreciated that the string broadcastdevices 220 may report a status as a group or individually, and mayprovide such status on a regular or random interval or at any timedesignated in the settings of an individual device (and remotelyconfigurable). Similarly, any updates reported by the server 1008 to thecomputer 1006 may provide information (configuration data) about theon/off status, broadcast identifiers, transmission power level,advertising frequency, etc.

If no change in status of a string broadcast device 220 or at the server1008 is detected at 2006 by the computer 1006 (or sever 1008), thecomputer 1006 continues to monitor the status of each string broadcastdevice 220 and the sever 1008 at 2002. If, on the other hand, a changein status of the broadcast device 220 is detected by the computer 1006(or server 1008), then the process continues to 2008. Similarly, if achange is detected at the server 1008, then the process continues to2008. At 2008, and in response to a determined change in status at 2006,the broadcast device 1002 receives configuration data from the server1008 which is located remotely and communicatively coupled to network101 (FIG. 1). The configuration data, as described above, may includesetting and/or status information about each device. It is alsoappreciated that although the depicted embodiment receives configurationdata when a status changes, the disclosure is not limited to such anembodiment. For example, configuration data may be provided to update,manage, control or change a device at any time regardless of whether achange in status has occurred at any particular device. At 2010, thereceived configuration data 2010 may be stored locally in a memory orstorage device of the broadcast device 1002 and the computer 1006instructs the wireless module 1004 to configure one or more of thestring broadcast stations 220 with the corresponding configuration data,at 2012. Upon completion of configuring the one or more string broadcastdevices 220, the process continues back to monitoring the devices at2002. A more detailed description of the broadcast device 1002, wirelessmodule 1004 and computer 1006 will be described below with reference toFIGS. 8 and 9. It is also appreciated that the processing may beperformed at the wireless broadcast device 1002 or at the server 1008,or a combination therefor.

FIG. 3 is an exemplary flow diagram of discovering connected anddisconnected broadcast devices. In addition to monitoring the stringbroadcast devices 220 as described with reference to FIG. 2, the systemalso monitors for newly connected or disconnected string broadcastdevice. That is, the system is also capable of discovering when a newdevice is connected to wireless module 1004 or a connected devicebecomes disconnected from the wireless module 1004. FIG. 3 describes theprocess by which the system discovers connection and disconnection ofdevices. At 3002, the computer 1006 of broadcast device 1002 monitorsthe wired and wireless interfaces of wireless module 1004 to determine(discover) whether a new string broadcast device 220 has been connectedor a connected string broadcast device 220 has become disconnected. Ifthe computer 1006 determines that a connected string broadcast device220 has become disconnected at 3004, the computer instructs the server1008 to deregister the disconnected string broadcast device at 3006. Theprocess then returns the discovering string broadcast devices at 3002.If, on the other hand, the computer 1006 discovers that a stringbroadcast device 220 has been newly connected (3008), the computerinstructs the server 1008 to register the newly connected stringbroadcast device at 3010. The process then continues to 2008 (FIG. 2)where configuration data is received from the server 1008 at thewireless broadcast device 1002. Otherwise, if the computer 1006 fails todiscover any newly connected or disconnected devices at 3008, then theprocess continues to 2008 (FIG. 2) without any registration orderegistration of any device.

Once the system has identified or discovered connected or disconnecteddevices as described above, and upon completion of reporting thediscovery to server 1008 from the computer 1006, the server 1008 mayupdate a directory that stores a list of devices, for example connected,previously connected or disconnected devices, to reflect a currentstatus of each respective device. Additionally, although the process hasbeen described as the computer 1006 discovering whether a device hasbecome connected or disconnected, the system is not limited to thedisclosed embodiment. For example, in an alternative embodiment, theserver 1008 may be responsible for discovering new connections ordisconnections.

FIG. 4 is an exemplary flow diagram of remotely monitoring the statusand updating the configuration of a broadcast device. At 4002, theserver 1008 receives a report from the wireless broadcast device 1002,via network connected computer 1006. In one embodiment, the report is inthe form of a web request that is initially sent from the stringbroadcast device 220 via the wireless broadcast device 1002 to theserver 1008. The web request may be, for example, a message sent viahttp over network 101, such as the Internet. The report (message)indicates, for example, the status of a non-network connected broadcastdevice, such as string broadcast device 220, as previously described.Upon receipt of the report at the server 1008, the server 1008optionally timestamps the report and records the information at 4004,for example, in a local or connected storage system or database DB(FIGS. 8 and 9). (It is also appreciated that the report may beoptionally time stamped by the computer 1006 at the time of being sentto the server 1008). The time stamped information may be used to aid inmonitoring of the status of string broadcast devices 220 connected (ordisconnected) to the wireless broadcast device 1002.

The report (time stamped or not) including the status information of thestring broadcast devices 220 may also be optionally displayed at acommon user interface 1010 to a user at 4006. The common user interface1010 may be used by a user to instruct (via a configuration command) theserver 1008 to provide updated information (configuration data) to thewireless broadcast device 1002 for programming the non-network connecteddevices. Alternatively, the server 1008 may automatically access a listof commands (configuration commands) stored in a storage system ordatabase DB. Any one or more of the commands may be provided to theserver 1008 based on an analysis of the reported status by a processingengine with analytics. At 4008, the server 1008 receives a configurationcommand from the common user interface 1010 (or from the processingengine and database) commanding the server 1008 to provide updatedinformation (configuration data) for each of the string broadcastdevices 220 associated with the updated configuration data. The server1008 then sends the updated configuration data to the remotely locatedwireless broadcast device, at 4010, to update respective stringbroadcast devices 220 connected to the wireless broadcast device 1002.

Exemplary Use Scenarios

The following scenarios are examples of monitoring and updating a stringbroadcast device using the system and processes illustrated in FIGS.1-9.

In a first exemplary scenario, the string broadcast device reports itsstatus. For example, the string broadcast device provides the computerwith a status that may be sent as a web request to the server. The webrequest informs the server of its health and requests instructions at aset interval. In response, a server records a timestamp of when thestring broadcast device last reported its status. A user views a webpage at a common interface showing the status the string broadcastdevice, which displays for example a “broadcast device ON” indicator ifthe timestamp is within a threshold time period.

In a second exemplary scenario, the string broadcast device retrievesconfiguration data. At a predetermined interval of time, the computersends a web request from the string broadcast device to the server thatprovides “health” information and requests instructions. In response,the server provides a list of settings requiring update on the stringbroadcast device (e.g., on/off, identifiers, advertisement frequency,transmit power, etc.). The computer receives the list of updates fromthe server and applies them to the respective string broadcast device.

In a third exemplary embodiment, the string broadcast device upgradessoftware. At a set interval, the computer sends a web request to theserver providing “health” information about one or more string broadcastdevices. Additionally, the request invites instructions from the server.The server responds with a URL where the computer may access anddownload a copy of software for updating the one or more stringbroadcast devices. The computer downloads the software as instructed bythe server and installs on the one or more string broadcast devices. Thecomputer may also report to the server whether the software has beensuccessfully installed on the string broadcast device.

As appreciated, the above use scenarios are non-limiting and exemplaryembodiments. The disclosure is not limited to the specific embodiments.

FIG. 5 is an exemplary diagram illustrating a process by which contentmay be associated with a network information string and stored. In anembodiment, content, or a link to content, may be stored in the recordassociated in a datastore in association with the network informationstring. Content may be stored by either the operator of the SBS and/orby a user of a wireless station. By way of illustration and not by wayof limitation, the content may include coupons, announcements, menus,news alerts, messages, photos, directions or links to additional contenton other servers.

A wireless station (device) 202, such as for example and withoutlimitation a Wi-Fi enabled device, comprises a transceiver 204, aprocessor 206, a memory 208, a wireless station application 212 and adisplay 214. The wireless station 202 also operates an instance ofstring utilization application 210. The wireless station application 212provides instructions to the processor 206 of the wireless station 202to enable the wireless station 202 to interact with the string broadcaststation (device) SBS 220, such as for example and without limitation aWi-Fi string broadcast station, as is known in the art.

In an embodiment, an SBS 220 comprises a transceiver 222, a processor224, a memory 226, and an SBS application 228. The SBS 220 also operatesan instance of the string utilization application 210. The SBSapplication 228 provides instructions to the processor 224 of the SBS220 to enable the SBS 220 to at least enable the SBS 220 to transmitbeacon message 230. In an embodiment, the SBS 220 broadcasts a message230 (in the illustration referred to herein as a beacon message) thatincludes a network information string. The network information stringmay be an SSID or a portion of an SSID as previously described.

Content may be delivered to, and stored in, a content datastore 244 byeither the operator of the SBS 220 and/or the user of the wirelessstation 202. The content datastore 244 is illustrated as supporting tworecords. The record 246 allows content to be stored in association witha network information string without regard to the ownership of theregistration of the network information string. Thus, the operator ofthe SBS 220 or the user of the wireless station 202 may submit contentto the content datastore for association with a network informationstring and the content will be stored in the record 246. The record 248is reserved for storage of content by a registered owner of a networkinformation string.

In an embodiment, an operator of the SBS 220 may send a message 232 overa link 234 conveying content or a link to content and the networkinformation string to the information string server 240. The informationstring server stores the content or the record 246 in the contentdatastore 244 associated with the network information string or inrecord 248 if the network information string has been registered by theoperator of the SBS 220. The content may be associated with a networkinformation string rule allowing delivery of the content during aparticular time period. For example, a business may operate an SBS. Theadditional content scheduled for evening and night hours may indicatenightly specials, a message that the business is currently closed, orother time-sensitive information. During those specific time periods,potential customers may be directed to the business's website for moreinformation.

In another embodiment, the additional content is stored in a record ofthe information string server 240 in association with the MAC address ofan SBS. The MAC address may also be used in combination with the networkinformation string or alone. The association of an SBS MAC address witha network information string allows the record 246 or the record 248 tostore content that is specific to a particular SBS. When information isrequested from the content data store 244, the MAC address may beincluded in the request. In this way, the content that is returned isspecific to an SBS and the area that is served by that SBS. For example,a network information string may be used by the operator of a businessthat has multiple locations each with its own SBS. The operator mayelect to issue a coupon for one location only. By tying the coupon tothe MAC address of that specific SBS, the coupon will be served onlywhen a request for content (described below) includes both the networkinformation string and the correct MAC address.

In another embodiment, content is provided by a user of a wirelessstation, such as for example and without limitation a Wi-Fi enableddevice. In this embodiment, a beacon message 230 is received at thewireless station 202 operating the string utilization application 210.By way of illustration and not by way of limitation, the wirelessstation 202 may be a cell phone, a smart phone, a tablet or a laptopcomputer. The string utilization application 210 may be utilized toreceive or create content for association with the network informationstring broadcast by the SBS 210. The string utilization application 210creates a message 216 conveying the content and the network informationstring, and optionally, the MAC address of the SBS 210 that transmittedthe beacon message 230, to the information string server 240 via link216. The content datastore 244 stores the content in association withthe network information string in a record 246 that is associated withthe network information string supplied in the message. When the SBS MACaddress is included in the message 216, the content is stored inassociation with both the network information string and the MACaddress. The MAC address may be used to establish a general location ofthe SBS 210, which location may be used in certain messages. Forexample, an operator of a wireless station may leave a message to gatherat a location proximate to the location of the SBS 220 that broadcasts aparticular network information string. As another example, the operatorof a wireless station may also leave comments about a venue that isproximate to the location of the SBS 220 that broadcasts a particularnetwork information string, such as feedback or a review of theirproducts or services.

In an embodiment, the owner of the network information string hasprivileges that allow it to control the content in both record 246 andrecord 248. For example, the registered owner of a network informationstring may remove some or all of the content in record 246 that isassociated with the registered network information string. A registeredowner may also block the association of content to the registerednetwork information string except by the registered owner.

As illustrated in FIG. 5, the content datastore 244 is physicallyseparate from the information string server 240. In this configuration,the content data store 244 may be located on a server that is accessibleto the information string server 240 via a link 242 and to the wirelessstation 202 via the link 216. In another embodiment, the contentdatastore 242 is a component of the information string server 240 andthe content datastore 244 is served by the information string server 240to the wireless station 202 via the communication link 216.

Requests to share content may be logged in the log datastore 250. Thelogged data may include identifying information of the wireless station202, identifying information of the user of the wireless station 202,the network information string associated with the requested content,the time when the request for content was made and the location of thewireless station when the request for content was made. The logged datacaptured in log datastore 250 may be used to identify user preferences,determine the response of the user of the wireless station 202 to thecontent 234 associated with the network information string, and measurethe interest of the user of the wireless station 202 in types ofcontent.

In another embodiment, content is stored in a memory of a wirelessstation, such as, for example and without limitation, memory 208 ofwireless station 202. By way of illustration and not by way oflimitation, the content may be stored in memory 208 of the wirelessstation 202 at the direction of a user of the wireless station 202, byvirtue of the configuration of string utilization application 210, or inresponse to the acquisition of content by the wireless station 202 fromthe content datastore 244 (acquisition of content from the contentdatastore 244 is discussed in detail below). For example, a user mayconfigure a wireless station to play an audio file when in proximity toan SBS that is broadcasting a network information string that includesthe word “coffee.” The string utilization application 210 may alsoacquire content (for example, a coupon for a pastry) in response toreceipt of a network information string from a first SBS that includesthe word “coffee,” wherein the coupon is presented when the wirelessstation receives a network information string (for example, “helen'scakes”) from a second SBS.

FIG. 6 is an exemplary diagram illustrating acquisition of contentassociated with a network information string. A wireless station(device) 202, such as for example and without limitation a Wi-Fi enableddevice, comprises a transceiver 204, a processor 206, a memory 208, awireless station application 212 and a display 214. The wireless station202 also operates an instance of string utilization application 210. Thewireless station application 212 provides instructions to the processor206 of the wireless station 202 to enable the wireless station 202 tointeract with the SBS 220 as is known in the art.

In an embodiment, an SBS 220 comprises a transceiver 222, a processor224, a memory 226, and SBS application 228. The SBS 220 also operates aninstance of string utilization application 210. The SBS 228 providesinstructions to the processor 224 of the SBS 220 to at least enable theSBS 220 to transmit beacon message 230. In another embodiment, the SBS220 broadcasts a beacon message 230 that includes a network informationstring that is associated with content stored on the information stringserver 240. The network information string may be associated withcontent stored in a record 246 or 248 held on content data store 244.The beacon message 230 may also include the MAC address of the SBS 220.In an embodiment, the SBS 220 provides wireless stations that associatewith SBS 220 access to a network (not illustrated). In anotherembodiment, the SBS 220 is configured to broadcast beacon message 230but is not configured to provide network access. In another embodiment,the SBS 220 not capable of providing connectivity to a network.

A wireless station 202 is configured with a string utilizationapplication 210 to be executed by processor 206. By way of illustrationand not by way of limitation, the wireless station 202 may be a cellphone, a smart phone, tablet, a laptop computer, a vending machine or acash register. The wireless station 202 may receive one or more beaconmessages, including beacon message 230. In one embodiment, the stringutilization application 210 examines the network identifier of eachbeacon message to determine if the network identifier contains a networkinformation string included on a network information string list storedin a memory accessible to the wireless station 202, such as memory 208.When the string utilization application 210 receives a listed networkinformation string, the string utilization application 210 may check amemory accessible to the wireless station 202, such as memory 208, forcontent that is associated with the network information string. If thecontent is not found in the memory accessible to the wireless station202, the wireless station 202 may send a content request message 302that includes the network information string to the information stringserver 240 via link 216.

Alternatively, the string utilization application 210 passes the networkidentifier from each beacon message to the information string server 240for inspection without first examining the network information string.The information string server 240 examines the network identifier ofeach beacon message to determine if the network identifier contains anetwork information string associated with content stored in a datastored device accessible to information string server 240, such ascontent datastore 244.

As previously described, the network information string may include allor a portion of the network identifier (e.g., the SSID) that isbroadcast by the string broadcast station 220. For example, a coffeeshop chain may assign the SSIDs joesjava1, joesjava2 . . . joesjava[n]to its “n” shops. It may register the network information string“joesjava” to provide the same message to all of its patrons regardlessof which shop a patron is visiting. It may also register joesjava[n] inassociation with string broadcast station MAC addresses to providemessages on a per-shop basis.

In another embodiment, the acquisition of content is based at least inpart on the MAC address of the string broadcast station 220 that isincluded in the beacon message 230. In this embodiment, the MAC addressmay be associated with the network information string and with thecontent on the content datastore 244. The MAC address may be used toacquire content that is specific to a particular venue at which the SBS220 is located.

The content request message 302 may also include credentials of the userof the wireless station 202. The credentials are evaluated by theinformation string server 240 prior to responding to a request to obtaincontent from the information string server. For example, the requestormay be required to first obtain a user ID and password from theinformation string server or from an authentication server utilized bythe information string server. In an embodiment, the string utilizationapplication 210 operating on the wireless station 202 may be configuredto present the credentials required to access the information stringserver 240. In another embodiment, the user of the wireless station 202may establish a session of a fixed time period with the informationstring server 240 by presenting the required credentials to theinformation string server 240.

The information string server 240 responds by sending a content responsemessage 304 to the wireless station 202 via the link 216. By way ofillustration and not by way of limitation, the additional content mayinclude coupons, announcements, menus, news alerts, photos, directionsor links to additional content on other servers. The content datastore232 is physically separate from the information string server 240. Inthis configuration, the content datastore 244 may be located on a serverthat is accessible to the information string server 240 via a link 242and to the wireless station 202 via the link 216. In another embodiment,the content datastore 244 is a component of the information stringserver 240 and the content is served by the information string server240 to the wireless station 202 via the link 216.

The wireless station 202 communicates with the information string server240 and receives content from the content datastore 232 via acommunication link 216. The link 216 may be a wired link, a wirelesslink that is provided via a cellular network or a wireless link that isprovided over a variety of wireless protocols. Alternatively, the link216 may be provided wirelessly through a gateway (not illustrated) thatconnects a wireless network to a wired network such as the Internet. Thewireless portion of the link may be provided through string broadcaststation 220 or through another string broadcast station (notillustrated).

Requests for content may be logged in the log datastore 250. The loggeddata may include identifying information of the wireless station 202,identifying information of the user of the wireless station 202, thenetwork information string associated with the requested content, thetime when the request for content was made, and the location of thewireless station when the request for content was made. The logged datacaptured in log datastore 250 may be used to identify user preferences,determine the response of the user of the wireless station 202 to thecontent associated with the network information string, and measure theinterest of the user of the wireless station 202 in types of content.

Embodiments hereof allow a message to be addressed to any wirelessstation that enters the range of a beacon signal sent by an SBS. Cellphones, smart phones, laptop computers, automated software, vendingmachines and cash registers can perform the functions using the systemof the invention. The messages may convey marketing information, publicservice information, traffic information, instructions for persons withdisabilities, sports scores, weather information, time schedules, andemergency instructions among other information. The messages may bedisplayed as text, images or audio or a combination of the same.

FIG. 7 is an exemplary diagram illustrating operations performed by alistener module according to an embodiment. Wireless listener module(device) A and B (elements 402 and 406) are configured to listen forbeacon messages 416 transmitted by string broadcast stations, such asSBS A, SBS B and SBS C (elements 410, 412 and 414). In an embodiment, anSBS beacon message 416 comprises a network information string. Awireless listener module (elements 402 and 406) operating a stringutilization application (element 404) receives one or more beaconmessages 416 and obtains the network information string from eachreceived beacon message. The wireless listener modules (elements 402 and406) also receive a probe message 422 from a wireless station 202. Theprobe message includes the media access controller (MAC) address of thewireless station 202. Wireless station 202 operates string utilizationapplication 210. In another embodiment, wireless listener module 402also receives probe message 444 from wireless station 442. The probemessage 444 includes the media access controller (MAC) address of thewireless station 442. Wireless station 442 does not operate an instanceof the string utilization application 210. Similarly, wireless listenermodule 404 also receives probe message 448 from wireless station 446.The probe message includes the MAC address of the wireless station 446.Wireless station 446 also does not operate an instance of the stringutilization application 210. Thus, a wireless listener modules receiveprobe and beacon messages from wireless stations and SBSs that arewithin range of the wireless listener module.

In an embodiment, a wireless listener module, such as module A and B,may also be configured to operate as an SBS and broadcast an SBS beaconmessage that comprises a network information string. A wireless listenermodule, such as wireless listener module A, 402 associates the MACaddress of the wireless station 202, the MAC address of wireless station442, the MAC address of wireless station 444 and the MAC address oflistener module A with the network information strings received fromeach beacon message 416 and sends the information strings and the MACaddresses to a list data server 430 for storage in a listener datastore432. The wireless listener module A 402 may also provide a timestampthat indicates when the wireless station 202 was proximate to thelistener module A 402.

As illustrated in FIG. 7, wireless listener module A 402 connects to thelist data server 430 via a link 420 and wireless listener module B 406connects to list data server 430 via link 422. The links 420 and 422 maybe wireless links, such as via a wireless LAN or a wireless telephonenetwork, or may be a wired link, such as via DSL line, a cable network,or a fiber network. In another embodiment, wireless listener modules A402 and B 406 communicate with each other and other wireless listenermodules via a mesh network (not illustrated).

Using an instance of the string utilization application 210, thewireless station 202 may send a string data request message 450 for alist of network information strings proximate to its current locationfrom the list server that have been reported by one or more listenermodules, such as wireless listener module A 402, that have also detectedthe probe message and the MAC address of the wireless station 420. Thestring data request message 450 includes the MAC address of the wirelessstation 202. The list server 440 may respond to the string data requestmessage by acquiring a list of network information strings associatedwith the MAC address of the wireless station 202 from the listenerdatastore 432 and sending the list to the wireless station 202 in stringdata response message.

In an embodiment, a wireless listener module, such as wireless listenermodule A 402, may listen for probe messages periodically. The time ofreceipt of a probe message 422 is captured by a time stamp. When awireless station moves out of range of the wireless listener module A402, the elapsed time between a current time and the time indicated by alast time stamp will increase. This elapsed time period may be used bythe datastore 442 to measure the age of data relating to a MAC addressand to log data (for example, MAC address and associated networkinformation strings) to the listener datastore 432 or to delete data ofa particular age.

While FIG. 7 illustrates two listener modules A and B, the illustrationis not limiting. Any number of listener modules may be deployed in aphysical space to form a listener network. Because the location of eachlistener module within the listener network is known, the location of awireless station that broadcasts a probe message (without regard towhether the wireless station operates a string utilization application)may be tracked within the listener network. Time stamping of the receiptof probe messages by each listener module within the listener networkallows the presence, path, time at location, number of visits to alocation, and other metrics to be determined on a per wireless stationbasis. Additionally, the tracking data may be used to construct reports.For example, the tracking data may indicate that 3,000 wireless stationpassed by a particular listener module during a single day and that 78%of these also passed by the listener module the previous day. Thetracking data may be of interest to city planners, businesses and publicsafety officials. For example, traffic outside a potential terroristtarget could be monitored to determine if the behavior of a particularwireless station is suspicious. FIG. 7 also illustrates a list dataserver 430 and a listener datastore 432. In an embodiment, thesestructures are components of information string server 240 (see, FIG.5).

FIG. 8 is an exemplary diagram illustrating a remotely configurablewireless broadcast device as illustrated in FIG. 1. The broadcast device1002 includes, for example, server API client 800, proxy 802 (includingagent 804 and BLE adapter 806A), update module 808, configuration module810, status module 812 and USB adapter 806B. The broadcast device 1002(also referred to herein as a wireless broadcast device) is alsocommunicatively coupled to beacons 220 (the beacons are also referred toherein as string broadcast devices or stations). The beacons 220 havebeen described with reference to FIGS. 5-7 and will not be repeated. Thewireless broadcast device 1002 may also include a database DB, which maybe any datastore, storage system or database as readily understood inthe art, and may be located within or external to the wireless broadcastdevice 1002. Wireless broadcast device 1002 is also remotely locatedfrom and communicatively coupled to server 1008 via network 101 (FIG.1). Communication between the server 1008 and the wireless broadcastdevice 1002 (and the components and modules included therein) isimplemented using the server API client 800 via network 101 (not shown),as well-known in the art.

Proxy 802 includes, for example, an agent 804 and an adapter 806A suchas a BLE enabled adapter. The proxy 802 is responsible for controllingand managing beacons 220 connected to the wireless broadcast device1002. The beacons 220, as described above, are non-network connecteddevices and not capable of long range communication. That is, thebeacons 220 include short range communications devices that enablecommunication with devices, such as a smartphone, that are in closeproximity thereto. The proxy 802 (as part of the wireless broadcastdevice 1002) therefore enables communication with the beacons 220 toprovide an indirect pathway to the server 1008 via network 101. Thus,the beacons 220 which are otherwise unable to communicate with theserver 1008, may now receive network communications from the server 1008via wireless broadcast device 1002 (and proxy 802). As appreciated, thisaffords the server 1008 with the capability to program and update thebeacons 220, as well as receive status updates from the beacons 220 viathe proxy 802.

An agent 804 in proxy 802 is capable of monitoring the beacons 220 todetermine a status and report the status to the remotely located server1008. The agent 804 is also responsible for requesting any updates orinstructions, such as updated configuration data, from the server 1008,via status module 812. The agent 804 may additionally or alternatively,discover newly connected and disconnected beacons 220 to the wirelessbroadcast device 1002. In response to discovering a newly connectedbeacon 220 or a disconnected beacon 220, the agent 804 reports thediscovery to the remotely located central server 1008 via status module812. The proxy 802 also includes one or more adapters 806A, such as aBLE adapter. The BLE adapter is configured to wirelessly communicatewith beacons 220 that are configured, for example, with Bluetooth lowenergy (BLE) communication technology. The beacons 220 may alsocommunicate with the proxy 802 via USB adapter 806B or any otherwell-known adapter technology. That is, the type of adapter orconnection protocol is not limited to the described embodiments, but maybe any well-known type of adapter or communication interface andprotocol.

The update module 808 receives configuration data from the server 1008.When receiving configuration data from the server 1008, theconfiguration data is received via server API client 800 at the wirelessbroadcast device 1002 and stored in the configuration module 810. Theupdate module 808 is communicatively coupled with the configurationmodule 810, and sends the configuration data to the configuration module810 for storage. The configuration data may be stored at theconfiguration module 810 or at the database DB. The configuration module810 is also responsible for instructing the proxy 802 to configure oneor more of the beacons 220 based on the configuration data upon receiptof a command to update one or more of the beacons 220. When instructedvia a configuration command, the proxy 802, via BLE or USB adapters806A/806B, configures a respective one or more beacons 220 based on theconfiguration data. The status module 812 is configured to monitor andidentify configuration changes in the beacons 220 and/or configurationupdates that are ready for transmission in server 1008. Thus, the statusmodule 812 communicates in a bi-directional manner to “poll” the beacons220 and server 1008 for any changes or updates. It is appreciated thatthe disclosed embodiments are non-limiting, and that any one or more ofthe described components or modules may be combined or modified.

In one embodiment, the server API client 800, proxy 802 (and agent 804and BLE adapter 806A), the update module 808, the configuration module810, the status module 812 and the USB adapter 806B together comprisecomputer 1006 (FIG. 1). However, it is appreciated that the variouscomponents and modules may be part of more than one computer and/orprocessor and may be software, hardware or firmware.

FIG. 9 is an exemplary diagram illustrating multiple remotelyconfigurable wireless broadcast devices and a server connected to acommon user interface as illustrated in FIGS. 1 and 8. The systemdepicted in FIG. 9 includes, for example, a server 1008, a common userinterface/server 1010, a databased DB communicatively coupled to theserver 1008, broadcast devices (wireless broadcast devices) 1002A, 1002Band 1002C, and beacons (string broadcast devices or stations) 220.Details of each system component are described above with reference tothe various figures and embodiments, and will not be described againherein. However, in the figure, the wireless broadcast devices 1002A,1002B and 1002C each operate independently. Additionally, althoughoperating independently, the wireless broadcast devices 1002A, 1002B and1002C may be geographically located in the same room or remotely locatedat separate geographic locations and may communicate with each other viaserver 1008. As illustrated, each of the wireless broadcast devices1002A, 1002B and 1002C are in communication with server 1008 via network101 (not shown). Thus, each of the wireless broadcast devices 1002A,1002B and 1002C are remotely located from and configurable by the server1008, as described in the above disclosed embodiments.

In one exemplary implementation of the system depicted in FIG. 9,wireless broadcast device 1002A is located at a first place of business,such as a pharmacy; wireless broadcast device 1002B is located at asecond place of business, such as an indoor arena; and wirelessbroadcast device 1002C is located at a third place of business, such asan office building. As described, each of the wireless broadcast devices1002A, 1002B and 1002C are located at different geographic locations andin communication with server 1008. Moreover, in each of the geographiclocations, multiple beacons 220 are deployed for use. For example, onehundred beacons 220 are deployed in each location to broadcast a messageto one or more users of a wireless device, such as a smartphone. Inorder to ensure that each of the one hundred beacons 220 are operatingproperly at each location, the wireless broadcast devices 1002A, 1002Band 1002C, at respective locations, monitors the beacons 220 for statusupdates. Similarly, the wireless broadcast devices 1002A, 1002B and1002C send requests to the server 1008 requesting instructions when newinformation (configuration data) becomes available. When the status of abeacon changes or becomes connected or disconnected, or the server 1008has new information to update one or more of the beacons 220, theconfiguration data is sent from the server 1008 to the beacons 220 via arespective wireless broadcast device 1002A, 1002B and 1002C.Accordingly, a remotely located server 1008 is able to update andconfigure non-network connected beacons 220 through one of the wirelessbroadcast devices 1002A, 1002B and 1002C which is connected the server1008 via network 101 (not shown). It is appreciated that the describedimplementation is non-limiting and exemplary in nature.

FIG. 10 is an illustrative embodiment of a general computer system. Thegeneral computer system which is shown and is designated 100 may be usedto implement the device illustrated in FIGS. 1-9. The computer system100 can include a set of instructions that can be executed to cause thecomputer system 100 to perform any one or more of the methods orcomputer based functions disclosed herein. The computer system 100 mayoperate as a standalone device or may be connected, for example, using anetwork 101, to other computer systems or peripheral devices.

Any combination of one or more computer readable media may be utilized.The computer readable media may be a computer readable signal medium ora computer readable storage medium. A computer readable storage mediummay be, for example, but not limited to, an electronic, magnetic,optical, electromagnetic, or semiconductor system, apparatus, or device,or any suitable combination of the foregoing. More specific examples (anon-exhaustive list) of the computer readable storage medium wouldinclude the following: a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an appropriateoptical fiber with a repeater, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Computer program code for carrying out operations for aspects of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET,Python or the like, conventional procedural programming languages, suchas the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL2002, PHP, ABAP, dynamic programming languages such as Python, Ruby andGroovy, or other programming languages. The program code may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider) or in a cloud computing environment or offered as aservice.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatuses(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable instruction executionapparatus, create a mechanism for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that when executed can direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions when stored in thecomputer readable medium produce an article of manufacture includinginstructions which when executed, cause a computer to implement thefunction/act specified in the flowchart and/or block diagram block orblocks. The computer program instructions may also be loaded onto acomputer, other programmable instruction execution apparatus, or otherdevices to cause a series of operational steps to be performed on thecomputer, other programmable apparatuses or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

In a networked deployment, the computer system 100 may operate in thecapacity of a server or as a client user computer in a server-clientuser network environment, or as a peer computer system in a peer-to-peer(or distributed) network environment. The computer system 100 can alsobe implemented as or incorporated into various devices, such as an callinterceptor, an IVR, a context manager, an enrichment sub-system, amessage generator, a message distributor, a rule engine, an IVR server,an interface server, a record generator, a data interface, afilter/enhancer, a script engine, a PBX, stationary computer, a mobilecomputer, a personal computer (PC), a laptop computer, a tabletcomputer, a wireless smart phone, a personal digital assistant (PDA), aglobal positioning satellite (GPS) device, a communication device, acontrol system, a web appliance, a network router, switch or bridge, aweb server, or any other machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine. The computer system 100 can be incorporated as or in aparticular device that in turn is in an integrated system that includesadditional devices. In a particular embodiment, the computer system 100can be implemented using electronic devices that provide voice, video ordata communication. Further, while a single computer system 100 isillustrated, the term “system” shall also be taken to include anycollection of systems or sub-systems that individually or jointlyexecute a set, or multiple sets, of instructions to perform one or morecomputer functions.

As illustrated in FIG. 10, the computer system 100 includes a processor110. A processor for a computer system 100 is tangible andnon-transitory. As used herein, the term “non-transitory” is to beinterpreted not as an eternal characteristic of a state, but as acharacteristic of a state that will last for a period of time. The term“non-transitory” specifically disavows fleeting characteristics such ascharacteristics of a particular carrier wave or signal or other formsthat exist only transitorily in any place at any time. A processor is anarticle of manufacture and/or a machine component. A processor for acomputer system 100 is configured to execute software instructions inorder to perform functions as described in the various embodimentsherein. A processor for a computer system 100 may be a general purposeprocessor or may be part of an application specific integrated circuit(ASIC). A processor for a computer system 100 may also be amicroprocessor, a microcomputer, a processor chip, a controller, amicrocontroller, a digital signal processor (DSP), a state machine, or aprogrammable logic device. A processor for a computer system 100 mayalso be a logical circuit, including a programmable gate array (PGA)such as a field programmable gate array (FPGA), or another type ofcircuit that includes discrete gate and/or transistor logic. A processorfor a computer system 100 may be a central processing unit (CPU), agraphics processing unit (GPU), or both. Additionally, any processordescribed herein may include multiple processors, parallel processors,or both. Multiple processors may be included in, or coupled to, a singledevice or multiple devices.

Moreover, the computer system 100 includes a main memory 120 and astatic memory 130 that can communicate with each, and processor 110,other via a bus 108. Memories described herein are tangible storagemediums that can store data and executable instructions, and arenon-transitory during the time instructions are stored therein. As usedherein, the term “non-transitory” is to be interpreted not as an eternalcharacteristic of a state, but as a characteristic of a state that willlast for a period of time. The term “non-transitory” specificallydisavows fleeting characteristics such as characteristics of aparticular carrier wave or signal or other forms that exist onlytransitorily in any place at any time. A memory describe herein is anarticle of manufacture and/or machine component. Memories describedherein are computer-readable mediums from which data and executableinstructions can be read by a computer. Memories as described herein maybe random access memory (RAM), read only memory (ROM), flash memory,electrically programmable read only memory (EPROM), electricallyerasable programmable read-only memory (EEPROM), registers, a hard disk,a removable disk, tape, compact disk read only memory (CD-ROM), digitalversatile disk (DVD), floppy disk, blu-ray disk, or any other form ofstorage medium known in the art. Memories may be volatile ornon-volatile, secure and/or encrypted, unsecure and/or unencrypted.

As shown, the computer system 100 may further include a video displayunit 150, such as a liquid crystal display (LCD), an organic lightemitting diode (OLED), a flat panel display, a solid state display, or acathode ray tube (CRT). Additionally, the computer system 100 mayinclude an input device 160, such as a keyboard/virtual keyboard ortouch-sensitive input screen or speech input with speech recognition,and a cursor control device 170, such as a mouse or touch-sensitiveinput screen or pad. The computer system 100 can also include a diskdrive unit 180, a signal generation device 190, such as a speaker orremote control, and a network interface device 140.

In a particular embodiment, as depicted in FIG. 10, the disk drive unit180 may include a computer-readable medium 182 in which one or more setsof instructions 184, e.g. software, can be embedded. Sets ofinstructions 184 can be read from the computer-readable medium 182.Further, the instructions 184, when executed by a processor, can be usedto perform one or more of the methods and processes as described herein.In a particular embodiment, the instructions 184 may reside completely,or at least partially, within the main memory 120, the static memory130, and/or within the processor 110 during execution by the computersystem 100.

In an alternative embodiment, dedicated hardware implementations, suchas application-specific integrated circuits (ASICs), programmable logicarrays and other hardware components, can be constructed to implementone or more of the methods described herein. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules.Accordingly, the present disclosure encompasses software, firmware, andhardware implementations. Nothing in the present application should beinterpreted as being implemented or implementable solely with softwareand not hardware such as a tangible non-transitory processor and/ormemory.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented using a hardware computersystem that executes software programs. Further, in an exemplary,non-limited embodiment, implementations can include distributedprocessing, component/object distributed processing, and parallelprocessing. Virtual computer system processing can be constructed toimplement one or more of the methods or functionality as describedherein, and a processor described herein may be used to support avirtual processing environment.

In one embodiment, there is a remotely configurable wireless broadcastdevice connected to a network, including a status module configured tomonitor and identify configuration changes in one or more non-networkconnected broadcast devices, and to communicate the changes to aremotely located central server; a proxy, communicatively coupled to thestatus module, configured to communicate with the one or morenon-network connected broadcast devices and operable to control theplurality of non-network connected broadcast devices; an update moduleconfigured to receive configuration data for one or more of thenon-network connected broadcast devices, the configuration dataincluding information to configure one or more of the non-networkconnected broadcast devices; a configuration module configured to storethe configuration data for each of the one or more non-network connectedbroadcast devices and to instruct the proxy to configure one or more ofthe non-network connected broadcast devices based on the configurationdata; and responsive to a configuration command received from theremotely located central server via the network, the configurationmodule controls the proxy to update a respective one or more of thenon-network connected broadcast devices with the configuration data.

In another embodiment, there is a method of remotely configuring awireless broadcast device over a network, including monitoring aplurality of string broadcast devices to determine a respective status,and reporting the status to a remotely located server; receivingconfiguration data for one or more of the string broadcast devices fromthe remotely located server, the configuration data includinginformation to configure one or more of the string broadcast devices;storing the configuration data for one or more of the string broadcastdevices and instructing a proxy, communicatively coupled to theplurality of string broadcast devices, to configure one or more of thestring broadcast devices based on the configuration data; and responsiveto a configuration command received from the remotely located server,controlling the proxy to configure a respective one or more of thestring broadcast devices based on the configuration data sent with theconfiguration command.

In still another embodiment, there is a wireless broadcast device,including a plurality of string broadcast devices configured to transmita message to one or more wireless devices associated with a user; and anetwork connected processor communicatively coupled to and controllingthe plurality of string broadcast devices; the processor configured toreceive configuration data for one or more of the string broadcastdevices and provided by a remotely located server, the configurationdata including identification information to configure the one or morestring broadcast devices; the processor configured to, responsive to aconfiguration command received from the remotely located server,configure a respective one or more of the string broadcast devices basedon the configuration data; and the processor configured to communicatechanges to the remotely located server responsive to identifiedconfiguration changes in one or more of the string broadcast devices.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatuses(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable instruction executionapparatus, create a mechanism for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that when executed can direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions when stored in thecomputer readable medium produce an article of manufacture includinginstructions which when executed, cause a computer to implement thefunction/act specified in the flowchart and/or block diagram block orblocks. The computer program instructions may also be loaded onto acomputer, other programmable instruction execution apparatus, or otherdevices to cause a series of operational steps to be performed on thecomputer, other programmable apparatuses or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousaspects of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularaspects only and is not intended to be limiting of the disclosure. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The description of the present disclosure has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the disclosure in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of thedisclosure. The aspects of the disclosure herein were chosen anddescribed in order to best explain the principles of the disclosure andthe practical application, and to enable others of ordinary skill in theart to understand the disclosure with various modifications as aresuited to the particular use contemplated.

For purposes of this document, each process associated with thedisclosed technology may be performed continuously and by one or morecomputing devices. Each step in a process may be performed by the sameor different computing devices as those used in other steps, and eachstep need not necessarily be performed by a single computing device.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A remotely configurable wireless broadcast deviceconnected to a network, comprising: a status module configured tomonitor and identify configuration changes in one or more non-networkconnected broadcast devices, and to communicate the changes to aremotely located central server; a proxy, communicatively coupled to thestatus module, configured to communicate with the one or morenon-network connected broadcast devices and operable to control theplurality of non-network connected broadcast devices; an update moduleconfigured to receive configuration data for one or more of thenon-network connected broadcast devices, the configuration dataincluding information to configure one or more of the non-networkconnected broadcast devices; a configuration module configured to storethe configuration data for each of the one or more non-network connectedbroadcast devices and to instruct the proxy to configure one or more ofthe non-network connected broadcast devices based on the configurationdata; and responsive to a configuration command received from theremotely located central server via the network, the configurationmodule controls the proxy to update a respective one or more of thenon-network connected broadcast devices with the configuration data. 2.The wireless broadcast device of claim 1, wherein a plurality ofwireless broadcast devices are network connected to the remotely locatedcentral server.
 3. The wireless broadcast device of claim 1, wherein theproxy further comprises: an agent configured to: monitor each of theplurality of non-network connected broadcast devices to determine arespective status, and to report the status to the remotely locatedcentral server in response to the monitoring, and discover at least oneof newly connected and disconnected non-network connected broadcastdevices, and in response to the discovering reporting newly discoverednon-network connected broadcast devices to the remotely located centralserver; and one or more adapters configured to connect one or more ofthe non-network connected broadcast devices to the proxy forcommunication.
 4. The wireless broadcast device of claim 3, wherein thestatus indicates at least one of an on/off state, a transmitter powerlevel, an advertising frequency and a measured power calibrationconstant of one or more of the non-network connected broadcast devices.5. The wireless broadcast device of claim 3, wherein newly discoverednon-network connected broadcast devices are registered with the remotelylocated central server, and previously registered non-network connectedbroadcast devices are deregistered with the remotely located centralserver when disconnected.
 6. The wireless broadcast device of claim 1,wherein the one or more non-network connected broadcast devise aredynamically configurable, via a common user interface connected to theremotely located central server, by modifying the configuration data. 7.The wireless broadcast device of claim 6, wherein the information in theconfiguration data includes at least one of updated settings and auniversal resource locator (URL).
 8. The wireless broadcast device ofclaim 3, wherein the one or more adapters communicate with one or moreof the non-network connected broadcast devices using at least one of aBluetooth connection and a USB connection.
 9. The wireless broadcastdevice of claim 1, wherein the one or more non-network connectedbroadcast devices comprise a memory configured to store theconfiguration data received by the wireless broadcast device; aprocessor configured to process the configuration data and reconfigurethe one or more non-network connected broadcast devices; and atransmitter configured to transmit a message upon completion of beingreconfigured and in accordance with the received configuration data. 10.The wireless broadcast device of claim 1, wherein one or more of thenon-network connected broadcast devices is deployed in a place ofbusiness and operable to transmit the message to one or more wirelessstations of customers.
 11. A method of remotely configuring a wirelessbroadcast device over a network, comprising: monitoring a plurality ofstring broadcast devices to determine a respective status, and reportingthe status to a remotely located server; receiving configuration datafor one or more of the string broadcast devices from the remotelylocated server, the configuration data including information toconfigure one or more of the string broadcast devices; storing theconfiguration data for one or more of the string broadcast devices andinstructing a proxy, communicatively coupled to the plurality of stringbroadcast devices, to configure one or more of the string broadcastdevices based on the configuration data; and responsive to aconfiguration command received from the remotely located server,controlling the proxy to configure a respective one or more of thestring broadcast devices based on the configuration data sent with theconfiguration command.
 12. The method of claim 11, further comprisingdiscovering at least one of newly connected and disconnected stringbroadcast device and, in response to the discovering, reporting thenewly discovered string broadcast device to the remotely located server.13. The method of claim 11, wherein the status indicates at least one ofan on/off state, a transmitter power level, an advertising frequency anda measured power calibration constant of one or more of the stringbroadcast devices.
 14. The method of claim 12, further comprisingregistering newly discovered string broadcast devices with the remotelylocated server, and deregistering previously registered string broadcastdevices with the remotely located server when disconnected.
 15. Themethod of claim 11, further comprising dynamically configuring the oneor more string broadcast devices, via a common user interface connectedto the remotely located server, by modifying the configuration data. 16.The method of claim 15, wherein the information in the configurationdata includes at least one of updated settings and a universal resourcelocator (URL).
 17. The method of claim 11, wherein the plurality ofstring broadcast devices communicate with the processor using at leastone of a Bluetooth connection and a USB connection.
 18. The method ofclaim 11, wherein the each of the plurality of string broadcast devicesperform the method comprising: storing the configuration data receivedby the wireless broadcast device in a memory; processing theconfiguration data and reconfiguring the one or more string broadcastdevices; and transmitting a message upon completion of beingreconfigured and in accordance with the received configuration data. 19.The method of claim 11, wherein one or more of the string broadcastdevices is deployed in a place of business and operable to transmit themessage to one or more wireless stations of customers.
 20. A wirelessbroadcast device, comprising: a plurality of string broadcast devicesconfigured to transmit a message to one or more wireless devicesassociated with a user; and a network connected processorcommunicatively coupled to and controlling the plurality of stringbroadcast devices; the processor configured to receive configurationdata for one or more of the string broadcast devices and provided by aremotely located server, the configuration data including identificationinformation to configure the one or more string broadcast devices; theprocessor configured to, responsive to a configuration command receivedfrom the remotely located server, configure a respective one or more ofthe string broadcast devices based on the configuration data; and theprocessor configured to communicate changes to the remotely locatedserver responsive to identified configuration changes in one or more ofthe string broadcast devices.